package com.fang.algorithm.zuo.sort;

/**
 * @author fanglingxiao
 * @version 1.0
 * @description 位运算
 * & 逻辑运算符 与运算
 * 1&1 == 1
 * 1&0 == 0
 * <p>
 * 整型的存储单元是32位
 * Java中最高位是符号位
 * 大小在 -2`31 ~ 2`31-1
 * <p>
 * >> 右移【左边空出是用符号为来补】
 * >>> 右移【左边空出不使用符号为来补】
 *
 * (～N + 1) == -N
 * @date 2022/1/13 12:05 上午
 **/
public class Test01_Bit {
    public static void main(String[] args) {
        print(10);
        print(-1);
        System.out.println(2 << 1);
    }

    private static void print(int num) {
        for (int i = 31; i >= 0; i--) {
            // 让每一位左移再&上当前数值
            System.out.print((num & (1 << i)) == 0 ? "0" : "1");
        }
        System.out.println();
    }
}
